<?php
/**
 * 模拟客户不间断下单，需配置每秒最小、最大下单
 */
include 'pub.php'; // 公共函数

/**
 * 使用 $argc $argv 接受参数
 * 传入示例：php test.php a b c d
 * 用$argc接收参数个数
 * 用$argv接收参数值，是个数组，第0个元素为php文件名，第1个元素为第1个参数。
 */
if (isset($argv[1]) && $argv[1]) {
    orderAdd($argv[1]);// 下单
}
if (isset($argv[2]) && $argv[2]) {
    orderClose($argv[2]);// 平仓
}


/**
 * 模拟客户下单（执行一次）
 * @param integer $num 总下单数
 */
function orderAdd($num = 1)
{
    global $config, $redis, $my_conn;

    // 获取所有客户
    $sql = "select uid from zzx_wp_userinfo";
    $res = mysqli_query($my_conn, $sql);
    while ($user = mysqli_fetch_assoc($res)) {
        $users[] = $user['uid'];
    }

    $redis_prev = $config['REDIS_PREFIX'];
    $code = ['ssc', 'kl8']; // 彩票标识
    $omoney = $redis->hgetall($redis_prev . 'conf_u_o_money'); // 订单金额类型
    $lots = rand(1,100); // 购买手数
    $index = 0;
    while ($index < $num) {
        # code...
        foreach ($users as $key => $value) {
            # code...
            $r['pcode'] = $code[array_rand($code)];
            $r['omoney'] = array_rand($omoney);
            $r['lots'] = $lots;
            $r['otype'] = rand(0, 1); // 单双
            $r['uid'] = $users[array_rand($users)];
//            $r['uid'] = 356;
            $re['get_type'] = 'insert';
            $re['data'] = $r;
            $re1 = $re1 = curl('127.0.0.1:9916', 'POST', 're=' . json_encode($re), 100); // 本机
            var_dump(json_decode($re1, true));
            $index += 1;
            if ($index >= $num) {
                break;
            }

            // 分批请求
            $n = 100; // 每次请求数量
            if ($index && $index % $n == 0) {
                sleep(1); // 分批请求间隔
            }
        }
    }
}




// 模拟重复提交平仓
//$redis_prev = $config['REDIS_PREFIX'];
//$r['oid'] = 3;
//$r['uid'] = 989;
//$re['get_type'] = 'close_p';
//$re['data'] = $r;
//$re1 = curl($redis->hget($redis_prev.'conf_s_server', 'orders_server'), 'POST',
//    're='.json_encode($re), 100);
//var_dump(json_decode($re1, true));
